package com.minimalist.common.entity.lindi.vo.tradeapplicationfile;

import com.minimalist.common.config.mybatis.bo.PageReq;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;
import java.util.Objects;

/**
 * 林地指标交易平台_交易申请相关文件 查询VO类。
 *
 * @author 11987
 * @since 2025-04-27
 */

@Schema(description = "林地指标交易平台_交易申请相关文件查询条件")
public class LindiTradeApplicationFileQueryVO extends PageReq implements Serializable{

    /**
     * 交易申请ID
     */
    @Schema(description = "交易申请ID")
    private Long tradeApplicationId;

    /**
     * 文件类型
     */
    @Schema(description = "文件类型")
    private Integer fileType;

    /**
     * 文件名称
     */
    @Schema(description = "文件名称")
    private String fileName;

    public LindiTradeApplicationFileQueryVO(){
    }

    public LindiTradeApplicationFileQueryVO(Long tradeApplicationId, Integer fileType, String fileName){
        this.tradeApplicationId = tradeApplicationId;
        this.fileType = fileType;
        this.fileName = fileName;
    }

    public Long getTradeApplicationId(){
        return tradeApplicationId;
    }

    public void setTradeApplicationId(Long tradeApplicationId){
        this.tradeApplicationId = tradeApplicationId;
    }

    public Integer getFileType(){
        return fileType;
    }

    public void setFileType(Integer fileType){
        this.fileType = fileType;
    }

    public String getFileName(){
        return fileName;
    }

    public void setFileName(String fileName){
        this.fileName = fileName;
    }

    @Override
    public boolean equals(Object o){
        if (this == o){
            return true;
        }
        if (o == null || getClass() != o.getClass()){
            return false;
        }
        LindiTradeApplicationFileQueryVO that = (LindiTradeApplicationFileQueryVO) o;

        if (!Objects.equals(tradeApplicationId, that.tradeApplicationId)){
            return false;
        }
        if (!Objects.equals(fileType, that.fileType)){
            return false;
        }
        return Objects.equals(fileName, that.fileName);
    }

    @Override
    public int hashCode(){
        int result = tradeApplicationId != null ? tradeApplicationId.hashCode() : 0;
        result = 31 * result + (fileType != null ? fileType.hashCode() : 0);
        result = 31 * result + (fileName != null ? fileName.hashCode() : 0);
        return result;
    }
}